/**

 @Name：layuiAdmin（iframe版） 消息中心
 @Author：贤心
 @Site：http://www.layui.com/admin/
 @License：LPPL
    
 */


layui.define(['table','zlContext','util'], function(exports){
  var $ = layui.$
  ,table = layui.table
  ,element = layui.element
  ,zlContext = layui.zlContext;


  
  var DISABLED = 'layui-btn-disabled'
  
  
  //区分各选项卡中的表格
  ,tabs = {
    all: {
      text: '全部消息'
      ,id: 'LAY-app-message-all'
    }
    ,notice: {
      text: '通知'
      ,id: 'LAY-app-message-notice'
    }
    ,direct: {
      text: '私信'
      ,id: 'LAY-app-message-direct'
    }
  }
  ,gridResponse={
    statusName: 'state'
    ,statusCode: 'OK' 
    ,msgName: 'msg' 
    ,countName: 'total'
    ,dataName: 'obj'
  };
  
  //标题内容模板
  var tplTitle = function(d){
    return '<a lay-event="edit" url="'+ d.link +'">'+ d.miaos;
  };
  //添加消息对象
  
  //全部消息
  table.render({
    elem: '#LAY-app-message-all'
    ,url: layui.cache['contentPath']+'/manager/coremessage/query' //模拟接口
    , limit: 20
	, limits: [20,50, 100, 200, 500, 1000]
    ,page: true
    ,sortload: true
    ,cols: [[
      { type: 'numbers', fixed: 'left', title: '#' }
      ,{field: 'miaos', title: '标题内容', minWidth: 300, templet: tplTitle}
      ,{field: 'functioname', title: '所属模块', width: 170,sort: true}
    ]]
    , response: gridResponse
    ,skin: 'line'
    , event:
    {
      onRowdbClick: function (field, row) {
        openNewPage(row.link,row.functioname);
      }
    }

  });

  var messenger = new Messenger('message', 'zlfw');
  messenger.listen(function(msg){
     layui.index.openTabsPage(msg.url,msg.text);});

  

  //通知
  // table.render({
  //   elem: '#LAY-app-message-notice'
  //   ,url:  layui.cache['contentPath']+'/manager/coremessage/query' //模拟接口
  //   ,page: true
  //   ,cols: [[
  //     {type: 'checkbox', fixed: 'left'}
  //     ,{field: 'title', title: '标题内容', minWidth: 300, templet: tplTitle}
  //     ,{field: 'time', title: '时间', width: 170, templet: '<div>{{ layui.util.timeAgo(d.time) }}</div>'}
  //   ]]
  //   ,skin: 'line'
  // });
  
  // //私信
  // table.render({
  //   elem: '#LAY-app-message-direct'
  //   ,url: layui.cache['contentPath']+'/manager/coremessage/query' //模拟接口
  //   ,page: true
  //   ,cols: [[
  //     {type: 'checkbox', fixed: 'left'}
  //     ,{field: 'title', title: '标题内容', minWidth: 300, templet: tplTitle}
  //     ,{field: 'time', title: '时间', width: 170, templet: '<div>{{ layui.util.timeAgo(d.time) }}</div>'}
  //   ]]
  //   ,skin: 'line'
  // });
  
  //事件处理
  var events = {
    del: function(othis, type){
      var thisTabs = tabs[type]
      ,checkStatus = table.checkStatus(thisTabs.id)
      ,data = checkStatus.data; //获得选中的数据
      if(data.length === 0) return layer.msg('未选中行');

      layer.confirm('确定删除选中的数据吗？', function(){
        /*
        admin.req('url', {}, function(){ //请求接口
          //do somethin
        });
        */
        //此处只是演示，实际应用需把下述代码放入上述Ajax回调中
        layer.msg('删除成功', {
          icon: 1
        });
        table.reload(thisTabs.id); //刷新表格
      });
    }
    ,ready: function(othis, type){
      var thisTabs = tabs[type]
      ,checkStatus = table.checkStatus(thisTabs.id)
      ,data = checkStatus.data; //获得选中的数据
      if(data.length === 0) return layer.msg('未选中行');
      
      //此处只是演示
      layer.msg('标记已读成功', {
        icon: 1
      });
      table.reload(thisTabs.id); //刷新表格
    }
    ,readyAll: function(othis, type){
      var thisTabs = tabs[type];
      
      //do somethin
      
      layer.msg(thisTabs.text + '：全部已读', {
        icon: 1
      });
    }
  };
  
  // form.on('a(aaa)',function(obj){
  //   alert('222');
	// 	var data = table.cache.tbUser;
	// 	var selectIfKey=obj.othis;                                                
	// 	// 获取当前所在行                                                                
	// 	var parentTr = selectIfKey.parents("tr");                                 
	// 	// 获取当前所在行的索引                                                             
	// 	var parentTrIndex = parentTr.attr("data-index");     
	// 	if(obj.elem.checked == true){
	// 		data[parentTrIndex].ENABLE=1
	// 	}else{
	// 		data[parentTrIndex].ENABLE=0
	// 	}
	// 	zlContext.post(layui.cache['contentPath'] + '/core/plan/modify ', JSON.stringify(data[parentTrIndex]), function (result) {
	// 		if (result[statusName] != OK) {
	// 			zlContext.errorMsg(result[msgName]);
	// 		}
	// 	});
	// });
  table.on('tool(LAY-app-message-all)',function(obj){
    openNewPage(obj.data.link,obj.data.functioname,obj.data.rwid);  
  });

  function openNewPage(url,text,resid){
    if(url==null||url==''){
      return;
    }
    url = url.replace(/#{contentpath}/i,layui.cache['contentPath']);
    var WParam={};
    WParam.url=url;
    WParam.text = text;
    var toplayui = top.window.layui;
    toplayui.index.openTabsPage(url,text,resid);
    // $ss=$("#LAY-app-message-all").parents('iframe').parents('iframe');
    // // var aa=window.parent.document.getElementByTagName("iframe")
    // messenger.addTarget(window.parent.document.contentWindow,'message');
    // messenger.send(WParam);
 
    // messenger.targets['index'].send(WParam);
  };

  $('.LAY-app-message-btns .layui-btn').on('click', function(){
    var othis = $(this)
    ,thisEvent = othis.data('events')
    ,type = othis.data('type');
    events[thisEvent] && events[thisEvent].call(this, othis, type);
  });
  
  exports('message', {});
});